package com.cc.data_explore.logic.os;

import java.util.Locale;

/**
 * 定义一个名为 OS 的公共类，用于提供操作系统相关的常量
 *
 * @author cc
 * @version 1.0
 * @since 2025/3/28
 */
public class OS {

    /**
     * 系统换行符，使用 System.lineSeparator() 方法获取，确保在不同操作系统上的兼容性。
     */
    public static final String NEWLINE = System.lineSeparator();

    /**
     * 应用程序目录中的应用程序名称，当前设置为 "dej"。
     */
    public static final String APP_DIR_APP_NAME = "dej";

    /**
     * 应用程序目录中的应用程序作者，当前设置为 "org.dej"。
     */
    public static final String APP_DIR_APP_AUTHOR = "org.dej";

    /**
     * 系统属性中获取的操作系统名称，转换为小写以进行统一比较。
     * 如果未获取到操作系统名称，则默认值为 "unknown"。
     */
    private static final String OS_NAME = System.getProperty("os.name", "unknown").toLowerCase(Locale.ROOT);

    /**
     * 判断当前操作系统是否为 Linux 系统。
     * 如果操作系统名称以 "linux" 开头，则返回 true，否则返回 false。
     */
    public static final boolean LINUX = OS_NAME.startsWith("linux");

    /**
     * 判断当前操作系统是否为 Windows 系统。
     * 如果操作系统名称以 "win" 开头，则返回 true，否则返回 false。
     */
    public static final boolean WINDOWS = OS_NAME.startsWith("win");

    /**
     * 判断当前操作系统是否为 macOS 系统。
     * 如果操作系统名称以 "mac" 开头，则返回 true，否则返回 false。
     */
    public static final boolean OS_X = OS_NAME.startsWith("mac");
}
